package com.yida.gwj.config.service;

import com.yida.gwj.api.domain.GwjConfFlow;
import com.yida.gwj.api.domain.GwjConfFlowStep;

import java.util.List;

/**
 * 业务流程Service接口
 *
 * @author lqq
 * @date 2022-12-13
 */
public interface IGwjConfFlowService {

	/**
	 * 查询业务流程列表
	 *
	 * @param gcFlow 业务流程
	 * @return 业务流程集合
	 */
	public List<GwjConfFlow> selectGwjConfFlowList(GwjConfFlow gcFlow);

	/**
	 * 查询业务流程
	 *
	 * @param flowId 业务流程主键
	 * @return 业务流程
	 */
	public GwjConfFlow selectGwjConfFlowByFlowId(Long flowId);

	/**
	 * 根据状态查询业务流程列表
	 *
	 * @param status 状态
	 * @return 业务流程集合
	 */
	public List<GwjConfFlow> selectGwjConfFlowByStatus(String status);


	/**
	 * 流程绑定步骤
	 *
	 * @param flowId    流程步骤编号
	 * @param flowSteps 要绑定的步骤编号集合
	 * @return /
	 */
	int saveGwjConfFlowStep(Long flowId, List<GwjConfFlowStep> flowSteps);

	/**
	 * 新增业务流程
	 *
	 * @param gcFlow 业务流程
	 * @return 结果
	 */
	public int insertGwjConfFlow(GwjConfFlow gcFlow);

	/**
	 * 修改业务流程
	 *
	 * @param gcFlow 业务流程
	 * @return 结果
	 */
	public int updateGwjConfFlow(GwjConfFlow gcFlow);

	/**
	 * 批量删除业务流程
	 *
	 * @param flowIds 需要删除的业务流程主键集合
	 * @return 结果
	 */
	int deleteByFlowIds(Long[] flowIds);

	/**
	 * 批量删除业务流程
	 *
	 * @param flowIds 需要删除的业务流程主键集合
	 * @return 结果
	 */
	public int deleteGwjConfFlowByFlowIds(Long[] flowIds);

}
